/**
 * PieceType.java
 * Created: 14.02.2011, 15:35:25
 */

package model.ds;

/**
 * An enumeration of the counter types available in swarm. Each counter stores
 * its multiplicity and a string that can e.g. be used for hashing purposes.
 * @author Jan-Philipp Kappmeier
 */
public enum PieceType {
	Queen( 1, false, "queen" ),
	Bug( 2, true, "bug" ),
	GrassHopper( 3, false, "grasshopper" ),
	Spider( 2, false, "spider" ),
	Ant( 3, false, "ant" );
	/** The number of counters of this type. */
	public final int multiplicity;
	/** Decides if this counter type can be placed on top of others. */
	public final boolean stackable;
	/** An identification string. */
	public final String identification;

	/**
	 * Sets the parameter for a counter type
	 * @param count the number of counters of this type
	 * @param stackable if the counter can be put on top of other counters
	 * @param identification an identification string
	 */
	private PieceType( int count, boolean stackable, String identification ) {
		this.multiplicity = count;
		this.stackable = stackable;
		this.identification = identification;
	}
}
